#ifndef __VENGINE_H__
#define __VENGINE_H__
#include "VBase.h"
#include "VRender.h"
#include "VMemory.h"
#include "VSprite.h"
#include "VUISystem.h"
#include "tinyxml2.h"
#include "VScene.h"

class VApi VEngine
{
public:
	static BOOL Init();
	static void Shutdown();
#ifdef VPLATFORM_WIN32
	static BOOL EditorMode;
#endif 
	static VFrameAllocator* MainThreadFrameAllocator;
	static VRender* Render;
	static VSpriteCache* SpriteCache;
	static VScene*	Scene;
	static VUISystem* GUI;
};

#define VRI VEngine::Render
#define VMFA VEngine::MainThreadFrameAllocator
#define VUI VEngine::GUI
#define VSC VEngine::SpriteCache
#define VSI VEngine::Scene

class VMainThreadFAMark : public VFAMark
{
public:
	inline VMainThreadFAMark():VFAMark(VMFA)
	{
	}
};


#endif 
